

void main(){
  var man = Man();
  man.coding();
  man.walk();
}

//todo Dart 是不支持多继承的，但是它支持 mixin，简单来讲 mixin 可以 “组合” 多个类，我们通过一个例子来理解。

class Person{
  say(){
    print("Person say");
  }
}

mixin Eat{
  eat(){
    print('eat something.');
  }
}

mixin Walk{
  walk(){
    print("take a walk.");
  }
}

mixin Coding{
  coding(){
    print("coding.");
  }
}
//注意：如果多个mixin 中有同名方法，with 时，会默认使用最后面的 mixin 的，mixin 方法中可以通过 super 关键字调用之前 mixin 或类中的方法
class Dog with Eat, Walk{}
class Man extends Person with Eat, Walk,Coding{}